Method for routing of data packets and routing apparatus

ABSTRACT

In order to be able to use a smaller routing table ( 4 ) and, thus, to reduce the costs and power consumption and to improve the performance of an IP router, it is proposed to extract a destination address identifier (ADR) from a data packet to be forwarded by the IP router, compress the extracted destination address identifier (ADR) by using a lossless data compression algorithm, and compare the compressed destination address identifier with entries stored in the routing table ( 4 ) so as to find a correspondence between the destination address identifier and one of the entries of the routing table ( 4 ). Each entry of the routing table ( 4 ) corresponds to a possible or available forwarding address of the IP router, the forwarding addresses having been compressed with the same data compression algorithm as the destination address identifier. After having found a correspondence between the destination address identifier and one of the compressed forwarding addresses stored in the routing table ( 4 ), a switch ( 6 ) of the IP router switches the respective data packet to one of its output links (OUT) which is associated with the respective forwarding address matching the destination address identifier (ADR).

The present invention relates to a method for routing of data packets aswell as a respective routing apparatus. In particular, the presentinvention relates to a method for routing of data packets according tothe IPv6 protocol (“Internet Protocol Version 6”) and a respectiverouting apparatus.

As one of the essential components of an internet data transmissionsystem, an IP router (“Internet Protocol”) makes a forwarding decisionfor an input data packet, i.e. it checks a destination addressidentifier carried in the packet header and directs it to the nextoutput port or output link through which the data packet should be sent.For example, depending on the destination address identifier of theinput data packet, the IP router can direct the data packet to a NextHop router or an Egress™ port for transmission over a respective outputlink. In a computer network, the NHRP protocol (“Next Hop ResolutionProtocol”) is a protocol which can be used so that a computer sendingdata to another computer can learn the most direct route to thereceiving computer. An Egress™ port is a new type of port used in modernIP routers.

In the following, the routing of data is briefly explained withreference to FIG. 7 which shows the schematic construction of an IProuter according to the prior art.

The IP router shown in FIG. 7 comprises an input block 1 which receivesa plurality of input data packets over N input links or input portsIN1-INN. The input block 1 serves as an input queue and outputs thereceived data packets in a “First In First Out” (FIFO) manner. A headerextracting block 2 is provided which extracts the packet header from therespective data packet to be transmitted so as to obtain the destinationaddress identifier which is included in the packet header. In addition,the data packet is transferred to an output block 6 which serves as aswitch. A routing table 4 stores all possible or available forwardingaddresses and the respective output link/port numbers of the router.That is to say the routing table comprises a plurality of entries, eachentry corresponding to a respective forwarding address to which a datapacket can be forwarded by the IP router. The routing table 4 isgenerated and updated by a block 5 using routing protocols. In FIG. 7,the routing updates are indicated with reference sign UPD. A routingunit 3 receives the destination address identifier extracted by theheader extracting block 2 and uses this destination address identifieras a key for searching for a match in the routing table 4, i.e. therouting unit 3 compares the destination address identifier with everyentry corresponding to a respective forwarding address informationstored in the routing table 4. If the routing unit 3 finds acorrespondence between the destination address identifier and one of theforwarding addresses stored in the routing table 4, the respectiveoutput link/port number is transferred to the switch 6, and the switch 6switches the data packet to a respective one of a plurality of M outputlinks/output ports OUT1-OUTM.

Hence, as long as the routing unit 3 finds a correspondence between thedestination address identifier extracted by the header extracting block2 and at least one of the entries stored in the routing table 4, therespective data packet can be switched to one of the output linksOUT1-OUTM. If, however, there is no match for the destination addressidentifier in the routing table 4, the switch 6 cannot switch therespective data packet to one of the output links, and the data packetcannot be forwarded to its destination.

It is obvious that the cost associated with an IP router of the typeshown in FIG. 7 and its performance depend very much on the size of therouting table 4. The routing table 4 consumes silicon area and thelook-up procedure consumes time as well as power, especially if therouting table 4 is large.

This problem in particular becomes more and more serious with the fastexpansion of internet. The newly introduced IPv6 protocol providesaddress identifiers comprising 128 bits. Theoretically, for an n-bitdestination address identifier, the routing table 4 may have up to 2^(n)entries. Hence, as regards the IPv6 protocol, there is a need for anenormous storing capacity for storing such a large routing table 4. Sucha large table size, however, makes the look-up procedure evenimpractical. Therefore, routing table look-up is regarded as the majorbottleneck in today's routers.

The most straightforward method for routing table look-up is to performa linear searching, i.e. compare the destination address identifier ofthe input data packet with each entry of the routing table until acorrespondence between the address identifier and one of the entries inthe routing table is recognized. Although this approach is simple, it ishardly used in actual practice due to its poor performance.

To speed up the look-up procedure, various strategies have been used.The most important ones are the usage of a so-called contents-addressedmemory (CAM), the search according to a tree-based data structure, andthe usage of so-called hashing strategies. Each of these knownstrategies has its own advantages and disadvantages. However, all ofthem are based on a search in the original data domain of thedestination address identifier. Thus, all of these strategies require arelatively complex search procedure and a relatively large routing tablesize.

Therefore, the object underlying the present invention is to provide arouting method for data packets as well as a respective routingapparatus which allow a smaller size of the routing table and, thus,enable a faster search for a correspondence between the respectivedestination address identifier and the entries stored in the routingtable and decrease the costs associated with the routing table.

According to the present invention, this object is achieved by a routingmethod for data packets as defined in claim 1 and a routing apparatusfor routing of data packets as defined in claim 12. The dependent claimsdefine preferred and advantageous embodiments of the present invention.

The basic idea of the present invention is that the routing tablelook-up can be performed in a compressed domain, i.e., before performingthe look-up operation for an input data packet, its destination addressidentifier is first compressed to remove redundancy. Then, the look-upoperation is carried out with the compressed destination addressidentifier as the key with respect to the routing table, the entries ofwhich having been also compressed in the same manner as the destinationaddress identifier of the input data packet.

Therefore, the look-up operation can be performed with respect to asmaller routing table and, thus, the costs and power consumptionassociated with the respective router can be reduced, while theperformance of the router can be improved.

The compression of the destination address identifier as well as theforwarding address information entries of the routing table is performedaccording to one and the same data compression algorithm. In particular,a so-called lossless data compression algorithm is used which eliminatesredundancy in the data without sacrificing any information content.There are several popular algorithms and variants of them which can beused for lossless compression. The most important examples are those ofthe Huffman, Arithmetic, and Lempel-Ziv (LZ) family.

Since the compression efficiency depends on the data characteristics ofthe destination address identifiers which the router deals with,parameters of the respective compressor, e.g. the code table, should beassigned or adjusted according to these characteristics.

As regards the data compression algorithm, a data compression algorithmcan be used which utilizes a code table which assigns a symbol of theaddress information to be compressed a respective code word. Each codeword has preferably a length which is inversely proportional to theappearance probability of the respective symbol in a given addresstable, for example an IPv6 address table. As a matter of course, theappearance probability of the symbols at the router input may also beconsidered to improve the overall performance.

By applying the above-mentioned data compression algorithm, theredundancy of the appearance distribution of some symbols or bitcombinations in the destination address identifier is taken intoaccount. Therefore, a kind of a spatial redundancy can be removed.However, there can still be other kinds of redundancy, e.g. redundancyin the time domain if there is a similarity of the destination addressidentifier for successive data packets. In order to remove such aredundancy in the time domain as well, there is preferably a feedbackfrom the routing unit to the compressor unit used for compressing thedestination address identifier so as to eliminate such a time domainredundancy and consider the similarity of a plurality of destinationaddress identifiers within a data packet sequence.

Although the present invention can preferably be used for the routing ofIPv6 data packets, the present invention is not limited to thispreferred field of application and, as a matter of course, can be usedfor all kinds of data packets.

In the following, preferred embodiments of the present invention will beexplained in more detail with reference to the enclosed drawings.

FIG. 1 shows schematically an IP router according to a preferredembodiment of the present invention,

FIG. 2 shows an implementation example for an address compressor, arouting unit and a routing table shown in FIG. 1, using a Huffman datacompression algorithm,

FIG. 3 shows an example for a code table for the address compressorshown in FIG. 2,

FIG. 4 shows an example for a hexadecimal address to be processed by theaddress compressor according to the code table shown in FIG. 3,

FIG. 5 shows a table illustrating the test results of a test concerningthe compression ratio of different IPv6 address tables,

FIG. 6 shows the dependence of the number of averaged bits and thenumber of entropy bits per byte in an IPv6 address, and

FIG. 7 shows schematically an IP router according to the prior art.

In practice, much redundancy may be involved in the destination addressidentifier to be processed by an IP router. To explore how muchredundancy may be involved in an IP address, an experiment was carriedout that tested, with various address tables, how many bits are reallynecessary to represent the information included in a quad, i.e. 4 bits,of an IPv6 address.

In FIG. 6, the result of the test is shown in dependence upon the IPv6address table size. A graph (i) shows the result of the test if arespective 4 bit-quad of an IPv6 address is compressed by using aHuffman encoder, i.e. graph (i) shows the number of averaged bits, whichare obtained after the Huffman coding, depending on the address tablesize. In addition, a graph (ii) shows the number of entropy bits perquad depending on the address table size. That is to say graph (ii)shows the theoretical result, i.e. the number of bits which are reallynecessary to carry the information of the quad. From FIG. 6 it can beseen that, instead of 4 bits, the necessary bit number varies between1.5 and 2. As the address table size exceeds 3×10⁶, the number of bitswhich are really necessary to carry the respective address informationreaches a stable value of about 1.8. This means a compression potentialof approximately (at least) 50%. It is to be noted that in thisexperiment only the redundancy of appearance distribution of somesymbols (bit combinations) in an address identifier was taken intoaccount. This corresponds to a kind of spatial redundancy. There canstill be other kinds of redundancy, for example a redundancy in the timedomain if there is a significant similarity of the address identifiersfor some data packets which are to be processed one after the other.

It is not easy for a general look-up method to consider all kinds ofredundancy completely. The approach described in the following indetail, however, makes it possible to combine the routing table look-uptechnique with a data compression technique. While the former techniqueis associated with a searching operation in a compact address table, thelatter technique deals with all possible kinds of redundancy. Bycombining the advantages of both techniques, an optimum solution for therouting table look-up problem can be achieved.

FIG. 1 shows the structure of an IP router according to a preferredembodiment of the present invention. Those components which correspondto the components shown in FIG. 7 and having already been describedbefore are indicated with the same reference signs as in FIG. 7. Inorder to avoid repetitions reference can be made to the description withrespect to FIG. 7.

The IP router of FIG. 1 differs from that shown in FIG. 7 in that the IProuter works in a compressed address domain. A first address compressor7 is arranged in the path between the header extracting block 2 and therouting unit 3. This address compressor 7 translates the destinationaddress identifier provided by the header extracting block 2, whichcomprises 128 bits for an IPv6 destination address identifier, forexample, into an in average shorter form using a data compressionalgorithm. The compressed destination address identifier is thenforwarded to the routing unit 3 and used as the key for the look-upoperation with respect to the routing table 4. In addition, an identicaladdress compressor 8 is arranged in the path between the block 5generating and updating the routing table 4 and the routing table 4.Hence, the address compressor 8 stores the forwarding addressinformation in a compressed form in the routing table 4 using the samedata compression algorithm as the address compressor 7. Thus, therouting table 4 is provided in a very compact form and, in particular,the routing table 4 is consistent with the compressed destinationaddress identifier output by the address compressor 7 and used as thekey for the look-up operation by the routing unit 3. The routing unit 3may use conventional methods for searching for a correspondence betweenthe compressed destination address identifier and one of the compressedforwarding addresses stored in the routing table 4.

The data compression algorithm used by the address compressors 7, 8 isparticularly a so-called lossless data compression algorithm. Such alossless data compression algorithm eliminates redundancy in therespective data without sacrificing any information content. There areseveral popular algorithms and variants of them which could be used forsuch a lossless data compression. The most important examples are thedata compression algorithms of the Huffman, Arithmetic, and Lempel-Ziv(LZ) family.

Since the compression efficiency depends on the data characteristics ofthe destination address identifiers that the router deals with, at leastsome of the parameters of the address compressors 7, 8, e.g. the codetable used by the address compressor, should be assigned or adjustedaccording to or in dependence upon these data characteristics.Therefore, the IP router shown in FIG. 1 comprises a compressorparameter block 9 which collects this information on the datacharacteristics of the respective destination address identifier fromthe header extracting block 2 and calculates the compression parametersfor the data compression algorithm used by the address compressors 7 and8.

As already described above, the address compression effected by theaddress compressors 7, 8 takes into account the redundancy of theappearance distribution of some symbols (bit combinations) in therespective destination address identifier. However, there can be anotherkind of redundancy in terms of the similarity of the destination addressidentifiers of a plurality of successive data packets. In order toeliminate such a redundancy in the time domain as well, the IP routeraccording to FIG. 1 comprises a feedback connection from the routingunit 3 to the address compressor 7 used for compressing the destinationaddress identifiers. Such a feedback from the routing unit 3 to theaddress compressor 7 allows to take into account the similarity of thedestination address identifiers within a data packet sequence. This canbe done, for example, by determining the forwarding address for theswitch 6 on the basis of a forwarding address having been determinedbefore in case the new destination address identifier, for which theforwarding address is to be determined by the routing unit 3, is verysimilar to the respective preceding destination address identifier.

FIG. 2 shows an implementation example for the address compressor 7, therouting unit 3, and the routing table 4 shown in FIG. 1. In particular,this implementation example corresponds to an architecture forprocessing IPv6 data packets. Although FIG. 2 shows a hardware diagramof the respective components, as a matter of course, the proposedarchitecture can be implemented with different hardware in software orin a combination of hardware and software as well.

The address compressor 7 shown in FIG. 2 receives an extracteddestination address identifier ADR from the header extracting block 2shown in FIG. 1. In the case of an IPv6 data packet, this destinationaddress identifier ADR comprises 128 bits which are divided into 32 4bit-quads by a block 10. Each quad is then translated into a code wordcomprising several bits using for example a code table shown in FIG. 3.This is done by a coding block 13.

The code table shown in FIG. 3 comprises a first column (A) listing allpossible hexadecimal values of a quad comprising 4 bits. In a secondcolumn (B), the respective binary code assigned to each quad value isdepicted. In addition, in a column (C) the code length for each codeword is depicted.

The 32 code words output by the coding block 13 are then combined by anaddress composing block 14 so as to obtain the compressed destinationaddress which is then buffered in a first buffer 20 of the routing unit3. In addition, there is a block 11 storing the respective code wordlength table corresponding to column (C) of FIG. 3, and a block 12 sumsup the code word lengths output by the block 11 for the respectiveaddress identifier ADR. The result is then buffered in a second buffer15. Hence, the buffer 15 stores the sum of the length of the code wordsfor the respective destination address identifier ADR, i.e. the lengthof the compressed address identifier, while the buffer 20 stores thecombination of the code words assigned to the respective destinationaddress identifier ADR, i.e. the compressed destination addressidentifier. The result stored in the buffer 15 is calculated by theblock 12 on the basis of column (C) shown in FIG. 3, while the resultstored in the buffer 20 is determined by the block 14 on the basis ofcolumn (B) shown in FIG. 3.

FIG. 4 shows an example for a destination address identifier ADR to becompressed in accordance with the code table shown in FIG. 3. Accordingto the code table of FIG. 3, this address is compressed to 56 bits. Each“F” value results in 1 bit of the compressed address, each “E” valueresults in 1 bit of the compressed address, each “D” value results in 3bits of the compressed address, the “B” value results in 5 bits of thecompressed address, the “7” value also results in 5 bits of thecompressed address, the “4” value results in 6 bits of the compressedaddress, and the “3” value also results in 6 bits of the compressedaddress. Hence, the compressed address determined according to the codetable shown in FIG. 3 comprises 22×1=22 bits for all “F” values, 1×6=6bits for the “4” value, 1×5=5 bits for the “B” value, 1×6=6 bits for the“3” value, 1×5=5 bits for the “7” value, 3×1 =3 bits for all “E” valuesand 3×3=9 bits for all “D” values of the input destination address.Thus, the compressed address comprises 56 bits in total.

The code table shown in FIG. 3 is generated by the compressor parameterblock 9 shown in FIG. 1 which outputs the compressor parameters CPARused by the blocks 11, 13 of the address compressor 7 shown in FIG. 2.In particular, the code table of FIG. 3 corresponds to a code havingbeen implemented by a Huffman encoder. In the present case, the Huffmanencoder assigns to each symbol (quad) a code word that has a lengthwhich is inversely proportional to the appearance probability of therespective symbol in an IPv6 address table comprising 872640 entries(13962240 bytes). The implementation of such a Huffman encoder, eitherin software or in hardware, can be found in many documents andpublications dealing with data compression. Therefore, a detaileddescription of such a Huffman encoder or of the construction of thecompressor parameter block 9, which is implemented with a Huffmanencoder, is not considered necessary.

The routing table 4 shown in FIG. 2 is composed of possible forwardingaddresses that are compressed with the same compression parameters CPAR,i.e. the same code tables as those used by the address compressor 7.These compressed forwarding addresses are arranged in sub-tablesaccording to their length. The compressed address length b₀-b_(N), thenumber of entries n₀-n_(N), and the base address a₀-a_(N) of eachsub-table are stored in a leading table 27. The routing unit 3 works tofind a match for the compressed input destination address in thecompressed routing table 4. This is effected as follows:

A block 17 reads an entry of the leading table 27 and sends the addresslength bi thereof to a length comparator 16. The length comparator 16compares the length of the compressed input address as stored in thebuffer 15 with each entry read out by the block 17. The lengthcomparator 16 compares the length of the compressed input address witheach address length b_(i) stored in the leading table 27 so as to findthe corresponding sub-table. If a match is found by the lengthcomparator 16, a block 18 is reset, and thereafter the block 18 sendsthe base address a_(i) of the found sub-table to a block 24 andinitializes a counter 23 to the number of entries n_(i) of therespective sub-table for the following address look-up operation.

Then, the routing unit 3 compares the compressed input address itself,as stored in the buffer 20, with the compressed address c_(j,i) storedin the sub-table as determined by the above-described search operation.A block 24 reads an entry from the respective sub-table 28 and sends theaddress c_(j,i) to an address comparator 21. This address comparator 21compares the compressed input address stored in the buffer 20 with thecompressed forwarding address provided by the block 24. With eachcomparison operation effected by the address comparator 21, an AND gate22 decrements the counter 23. Therefore, the comparison operation of theaddress comparator 21 is repeated until a correspondence is foundbetween the compressed destination address and one of the compressedforwarding addresses stored in the sub-table 28, or until the counter 23is decremented to zero. An 1bit-latch 25 holds the latest comparisonresults of the address comparator 21. If there is a correspondencebetween the compressed input destination address and one of thecompressed forwarding addresses stored in the sub-table 28, the1bit-latch 25 generates a signal for a logic gate 26, which effects alogic AND operation between the output signal of the 1bit-latch 25 andan inverted output signal of the counter 23. This output signal of thecounter 23 has a low level as long as the counter 23 has not reached thevalue zero. Hence, the output signal VALID of the logic gate 26indicates whether the output port number or output link number o_(j,i)currently processed by the block 24 is valid and can be used for theforwarding operation of the switch 6 (see FIG. 1). It should be notedthat the index “i” indicates the number of the respective sub-table,while the index “j” indicates the number of the respective entry withina sub-table.

A further block 19 of the routing unit 3 effects a byte alignmentoperation of the coded or compressed input address, which is stored inthe buffer 20, by zero padding of the remaining bits.

According to the implementation example shown in FIG. 2, eachdestination address identifier ADR is divided up into 4 bit-symbols.However, as a matter of course, the destination address identifier mayalso be divided up in a different manner. In addition, the code tableshown in FIG. 3 is determined only by considering the appearanceprobability of the respective symbols (quads) in a given address table,in the present case in an IPv6 address table. However, the appearanceprobability of the symbols at the router input can also be considered inorder to improve the performance of the IP router. Finally, as alreadyindicated above, the present invention is by no means limited to Huffmancodes. Any lossless data compression algorithm can be used as a basisfor the implementation of the address compressors 7, 8, the routing unit3 and the routing table 4.

The model of using compressed destination address identifiers andcompressed forwarding addresses was tested using a plurality of IPv6address tables of various sizes. FIG. 5 illustrates the test result.Column (A) indicates the number of the respective IPv6 address table,column (B) contains the number of entries of the respective IPv6 addresstable, column (C) contains the original sizes (bytes) of the IPv6address table, column (D) contains the compressed sizes (bytes) of theIPv6 address table, and column (E) indicates the compression ratio (%)which could be achieved. As can be seen, the required size of therouting table can be reduced dramatically. This leads to an improvedperformance of the IP router and helps to save memory and power for thelook-up operation. The test result coincides with the theoreticalanalysis of FIG. 6.

1-17. (canceled)
 18. A method for routing of data packets, comprising the steps: (a) extracting a destination address identifier from a data packet to be forwarded, (b) compressing the destination address identifier using a compression algorithm, (c) comparing the compressed destination address identifier with entries of a routing table, each entry corresponding to a forwarding address available for routing, and (d) if a positive comparison between the compressed destination address identifier and an entry stored in the routing table is found in step (c), then switching the data packet to an output link associated with the forwarding address corresponding to the entry.
 19. The method according to claim 18, wherein each of the entries of the routing table comprises a forwarding address compressed using the compression algorithm.
 20. The method according to claim 18, wherein the compression algorithm comprises a lossless data compression algorithm configured to reduce redundancy in the destination address identifier.
 21. The method according to claim 20, wherein the lossless data compression algorithm is selected from a group comprising Huffman algorithms, Arithmetic algorithms, and Lempel-Ziv algorithms.
 22. The method according to claim 18, further comprising adjusting at least one parameter of the data compression algorithm in dependence upon data characteristics of the destination address identifier.
 23. The method according to claim 19, wherein step (c) further comprises comparing the compressed destination address identifier with entries of the routing table taking into account a similarity between the compressed destination address identifier and a compressed destination address identifier of a preceding data packet.
 24. The method according to claim 19, wherein step b) further comprises compressing the destination address identifier using a code table that associates a code word to a symbol of the destination address identifier and to a symbol of each forwarding address, respectively.
 25. The method according to claim 24, wherein each symbol of the destination address identifier and each symbol of a forwarding address, respectively, comprises a plurality of bits of the destination address identifier and a plurality of bits of the forwarding address, respectively.
 26. The method according to claim 25, wherein each symbol of the destination address identifier and each symbol of the forwarding addresses comprises four successive bits of the destination address identifier and the forwarding address, respectively.
 27. The method according to claim 24, wherein step b) further comprises compressing the destination address identifier using the code table that associates the code word to the symbol of the destination address identifier, the length of each code word being inversely related to an appearance probability of a corresponding symbol in the code table.
 28. The method according to claim 24, wherein step b) further comprises compressing the destination address identifier using the code table that associates the code word to the symbol of the destination address identifier, the length of each code word being inversely related to an appearance probability of a corresponding symbol in the destination address identifier of an input data packet.
 29. The method according to claim 18, wherein step (a) further comprises extracting the destination address identifier from an IPv6 data packet to be forwarded.
 30. A routing apparatus for routing of data packets, comprising: a first data compressor configured to receive a destination address identifier of a data packet to be forwarded and generate a compressed destination address identifier therefrom, a routing table store configured to store a plurality of entries, each entry corresponding to a forwarding address available for routing, a routing unit configured to compare the compressed destination address identifier with the entries stored in the routing table store means for finding a correspondence between the compressed destination address identifier and one of the entries, each entry corresponding to a forwarding address, and a switch configured to switch the data packet to an output link associated with a forwarding corresponding to a entry corresponding to the compressed destination address identifier.
 31. The routing apparatus according to claim 30, further comprising a second data compressor configured to compress the forwarding addresses according to said data compression algorithm, and wherein the entries in the routing table store comprise compressed forwarding addresses.
 32. The routing apparatus according to claim 30, wherein the first data compressor is configured to use a lossless data compression algorithm which reduces redundancy in the destination address identifier.
 33. The routing apparatus according to claim 32, wherein the first data compressor is configured to use a data compression algorithm being selected from a group comprising Huffman algorithms, Arithmetic algorithms, and Lempel-Ziv algorithms.
 34. The routing apparatus according to claim 30, further comprising a compression parameter adjuster configured to adjust at least one parameter of the first data compressor in dependence upon data characteristics of the destination address identifier.
 35. The routing apparatus according to claim 12, wherein the routing unit is operably connected to provide feedback information to the first data compressor.
 36. A routing apparatus for routing of data packets, comprising: extraction means for extracting a destination address identifier from a data packet to be forwarded, routing table storing means for storing a plurality of entries, each entry corresponding to a forwarding address available for routing, a routing unit for comparing the destination address identifier with the entries stored in the routing table storing means for finding a correspondence between the destination address identifier and one of the forwarding addresses, and switch means for switching the data packet to an output link associated with the respective forwarding address matching the destination address identifier, wherein first data compression means are provided for compressing the destination address identifier extracted by the extraction means according to a data compression algorithm, and wherein second data compression means are provided for compressing the forwarding addresses according to said data compression algorithm and storing the compressed forwarding addresses in the routing table storing means, the routing unit being configured such that it compares the compressed destination address identifier with the compressed forwarding addresses stored in the routing table storing means.
 37. The routing apparatus according to claim 36, wherein the first and second data compression means are configured such that they use a lossless data compression algorithm which reduces redundancy in the destination address identifier and the forwarding addresses, respectively, without losing any information content. 